﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RN.Entidades;
using CAD.DAO;
using System.Data;

namespace RN.Componentes
{
    public class CPermisos
    {
        #region DMLS
        public static bool Insertar(Permisos objProxy)
        {
            ValidationException x = new ValidationException();
            if (string.IsNullOrEmpty(objProxy.SNOMBREPERMISO1))
                x.AgregarError("Ingrese el nombre del permiso");

            if (x.Cantidad > 0)
                throw x;

            DAOPermisos daoProxy = new DAOPermisos();
            return daoProxy.Insertar(objProxy.LPERMISOS1, objProxy.SNOMBREPERMISO1, objProxy.ICONCURRENCIA1, objProxy.LTIPORESPONSABLE1.LTIPODERESPONSABLE1) > 0;

        }
        public static bool ActualizarPermisos(Permisos objProxy)
        {
            ValidationException x = new ValidationException();


            if (string.IsNullOrEmpty(objProxy.SNOMBREPERMISO1))
                x.AgregarError("Ingrese el nombre de la familia");

            if (x.Cantidad > 0)
                throw x;

            DAOPermisos daoProxy = new DAOPermisos();
            return daoProxy.Actualizar(objProxy.LPERMISOS1, objProxy.SNOMBREPERMISO1, objProxy.ICONCURRENCIA1, objProxy.LTIPORESPONSABLE1.LTIPODERESPONSABLE1);

        }
        public static bool Eliminar(int LPERMISOS_ID)
        {
            ValidationException x = new ValidationException();
            if (LPERMISOS_ID <= 0)
                x.AgregarError("Ingrese el código");

            if (x.Cantidad > 0)
                throw x;

            DAOFamilia daoProxy = new DAOFamilia();
            return daoProxy.Eliminar(LPERMISOS_ID);
        }
        #endregion

        #region Selects
        public static List<Permisos> Traer()
        {
            DAOPermisos daoProxy = new DAOPermisos();
            DataSet dtsProxy = daoProxy.Traer();
            return CargarLista(dtsProxy.Tables[0]);
        }
        public static Permisos TraerXId(int LAREAS_ID1)
        {
            DAOPermisos daoProxy = new DAOPermisos();
            DataSet dtsProxy = daoProxy.TraerXId(LAREAS_ID1);


            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        public static Permisos TraerXNombre(string nombre)
        {
            DAOPermisos daoProxy = new DAOPermisos();
            DataSet dtsProxy = daoProxy.TraerXNombre(nombre);


            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        #endregion
        #region Metodos Privados
        private static List<Permisos> CargarLista(DataTable tabla)
        {
            List<Permisos> lstProxy = new List<Permisos>();

            foreach (DataRow fila in tabla.Rows)
            {
                lstProxy.Add(Cargar(fila));
            }
            return lstProxy;
        }
        private static Permisos Cargar(DataRow fila)
        {
            Permisos objProxy = new Permisos();

            objProxy.SNOMBREPERMISO1 = fila["SNOMBRE"].ToString();
            objProxy.LTIPORESPONSABLE1.LTIPODERESPONSABLE1 = Convert.ToInt32(fila["LTIPORESPONSABLE"]);
            objProxy.LPERMISOS1 = Convert.ToInt32(fila["LPERMISOS"]);
            objProxy.ICONCURRENCIA1 = Convert.ToInt32(fila["ICONCURRENCIA"]);
            return objProxy;
        }
        #endregion

    }
}
